package com.example.midprojcampusspringboot.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.annotation.Configuration;

import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 触发操作 -- 自动添加时间
 */

@Configuration
public class FieldHandler implements MetaObjectHandler {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    /**
     * 添加时触发的操作
     *
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
//        this.setFieldValByName("createTime", sdf.format( new Date()), metaObject);
//        this.setFieldValByName("updateTime", sdf.format( new Date()), metaObject);
        // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdf.format(new Date()) 和 LocalDateTime.now() 生成的时间格式一样
        this.setFieldValByName("createdTime", LocalDateTime.now(), metaObject);
        this.setFieldValByName("updatedTime", LocalDateTime.now(), metaObject);
//        this.setFieldValByName("createBy", SecurityUtils.getUsername(), metaObject);
//        this.setFieldValByName("updateBy", SecurityUtils.getUsername(), metaObject);
    }

    /**
     * 更新时触发的操作
     *
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updatedTime", LocalDateTime.now(), metaObject);
        //this.setFieldValByName("updateBy", SecurityUtils.getUsername(), metaObject);
    }
}

